package cn.tedu.mybatisdemo.mapper;

import cn.tedu.mybatisdemo.pojo.Teacher;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
/**
 * 一般情况下,MyBatis框架的中的接口要求如下:
 * ①接口的包名一般取名为mapper或者dao,方便分类
 * ②接口的名字一般都是和操作的表相关,也就是遵循表明+Mapper的形式 TeacherMapper
 * ③一个接口中定义的抽象方法,适合于绑定该类的SQL语句
 * ④要将接口交给Spring容器管理(Spring容器会自动将接口的子类实例,交给Spring容器管理)
 * ·方式一: 直接在接口上,添加@Mapper注解
 * ·方式二: 使用@MapperScan注解,指定接口包路径,自动扫描
 */
import java.util.List;
//@Mapper
@Repository
public interface TeacherMapper {
    /**
     * Mybatis要求接口中的方法有如下规则:
     * ①方法名: 要求见名知意
     * ②方法返回值: 执行的SQL返回的结果,按照情况封装
     * ·查询的结果是一条记录,那么直接封装到实例中记录
     * ·查询的结果是多条记录,那么封装到List<封装的类型>
     * ·执行的SQL返回的是修改的记录数,那么可以设置int
     * ·执行的SQL不需要返回内容,设置为void
     * ③方法的参数: 后面再说
     */
    @Select("SELECT * FROM teacher")
    public List<Teacher> getTeacherAll();

    @Insert("INSERT INTO teacher VALUES (6666,'光头师傅',22,'宗师',null,100000,50000,'男',0);")
    public int addTeacher();

    @Update("UPDATE teacher SET salary = 1000 WHERE name = '光头师傅'")
    public int updateTeacher();

    @Delete("DELETE FROM teacher WHERE name = '光头师傅'")
    public int deleteTeacher();
}
